【例子介绍】高清文字版
【相关图片】
【源码结构】
目 录 第 1 章 Delphi 概述······················································································································1 1.1 Delphi 介绍······················································································································1 1.2 Delphi 7 的主要特性·······································································································2 1.2.1 熟悉语言特性······································································································2 1.2.2 丰富的组件··········································································································2 1.2.3 功能强大的数据库访问技术···············································································3 1.2.4 便捷的 Internet 编程技术····················································································3 1.3 Delphi 7 的安装与卸载···································································································3 1.3.1 Delphi 7 的安装 ···································································································3 1.3.2 Delphi 7 的卸载 ···································································································6 第 2 章 Delphi 7 的集成开发环境 ·······························································································8 2.1 集成开发环境中的窗口元素 ··························································································8 2.1.1 对象编辑器··········································································································8 2.1.2 工程管理器··········································································································8 2.1.3 代码编辑器··········································································································9 2.1.4 对象浏览器········································································································ 11 2.1.5 调试器················································································································ 11 2.2 集成开发环境中的操作界面 ························································································13 2.2.1 主菜单················································································································13 2.2.2 工具栏················································································································18 2.2.3 组件面板············································································································19 2.3 定制集成开发环境········································································································19 2.3.1 定制编程环境····································································································19 2.3.2 定制代码编辑器 ································································································20 2.3.3 定制工具栏········································································································20 2.3.4 定制组件面板····································································································21 2.3.5 定制窗口位置····································································································22 2.3.6 保存当前定制····································································································22 2.4 附属工具 ·······················································································································23 2.4.1 Database Desktop ·······························································································23 2.4.2 数据库引擎(BDE Administrator)··································································29 2.4.3 SQL Explorer······································································································30 2.4.4 Data Pump ··········································································································31 2.4.5 Image Editor·······································································································32 Delphi 7 程序设计与开发技术大全 ·2· 2.5 使用帮助系统················································································································34 第 3 章 应用程序框架················································································································35 3.1 创建一个简单的 Delphi 程序 ·······················································································35 3.2 构成 Delphi 工程的文件·······························································································38 3.2.1 工程文件(.dpr)······························································································38 3.2.2 单元文件(.pas)······························································································38 3.2.3 窗体文件(.dfm)·····························································································40 3.2.4 资源文件(.res)·······························································································41 3.2.5 工程选项及桌面配置文件(.dof)···································································42 3.2.6 中间编译单元(.dcu)······················································································42 3.2.7 备份文件(.~ pas)························································································42 3.2.8 包文件(.dpk)·································································································42 3.3 Delphi 项目的框架类····································································································42 3.3.1 TForm 类············································································································43 3.3.2 TApplication 类··································································································45 3.3.3 TScreen 类··········································································································48 3.4 Delphi 的公共体系结构································································································48 3.4.1 Delphi 固有的体系结构·····················································································48 3.4.2 多文档应用程序 ································································································49 3.4.3 数据库模块窗体 ································································································50 3.4.4 网络模块窗体····································································································51 3.5 Delphi 工程的常见管理方法 ························································································51 3.5.1 工程的目录结构 ································································································51 3.5.2 专用单元存放公共代码·····················································································52 3.5.3 管理多个工程····································································································52 第 4 章 Object Pascal 语言·········································································································53 4.1 语言基础 ·······················································································································53 4.1.1 Object Pascal 语言编写环境··············································································53 4.1.2 注释语句············································································································54 4.1.3 标识符················································································································54 4.1.4 保留字和指令字 ································································································55 4.1.5 数据类型与定义变量 ························································································56 4.1.6 Object Pascal 的运算符······················································································64 4.1.7 语句····················································································································65 4.1.8 过程与函数········································································································69 4.1.9 规范化命名········································································································74 4.2 面向对象的特性············································································································75 4.2.1 类和对象············································································································75 4.2.2 类的定义············································································································75 4.2.3 类的封装············································································································76 目录 ·3· 4.2.4 类的继承············································································································76 4.2.5 构造与析构········································································································77 4.2.6 方法····················································································································80 4.2.7 多态性················································································································82 4.2.8 类运算符············································································································85 4.2.9 类方法和类引用 ································································································87 4.3 结构化异常处理············································································································89 4.3.1 Try...Except 语句和 Try...Finally 语句·······························································89 4.3.2 Raise 语句··········································································································91 4.3.3 异常类················································································································92 4.4 方法与技巧 ···················································································································92 4.4.1 设置代码模板····································································································92 4.4.2 设置提示信息····································································································93 第 5 章 使用 VCL 组件编程······································································································94 5.1 可视化类库(VCL)····································································································94 5.1.1 VCL 类库结构···································································································94 5.1.2 组件运行机制····································································································95 5.2 VCL 常用基类···············································································································99 5.2.1 TPersistent 类·····································································································99 5.2.2 TComponent 类··································································································99 5.2.3 TControl 类 ······································································································100 5.2.4 TWinControl 类································································································100 5.2.5 TGraphicControl 类··························································································101 5.2.6 TCustomControl 类 ··························································································101 5.3 Delphi 组件··················································································································102 5.3.1 Delphi 组件的优势 ··························································································102 5.3.2 组件的分类······································································································102 5.3.3 组件的属性、事件和方法···············································································103 5.3.4 组件的基本操作 ······························································································106 5.4 使用 Delphi 组件编程·································································································107 5.4.1 示例功能··········································································································108 5.4.2 设置窗体··········································································································108 5.4.3 编写代码·········································································································· 110 第 6 章 常用 VCL 组件的使用 ································································································ 112 6.1 简单组件 ····················································································································· 112 6.1.1 标签组件(TLabel)······················································································· 112 6.1.2 按钮组件(TButton)····················································································· 115 6.1.3 复选框组件(TCheckBox) ··········································································· 116 6.1.4 单选框组件(TRadioButton)········································································ 117 6.1.5 下拉列表组件(TComboBox)······································································ 117 Delphi 7 程序设计与开发技术大全 ·4· 6.1.6 窗格组件(TPanel)·······················································································120 6.1.7 滚动条组件(TScrollBar)·············································································121 6.1.8 单选分组框组件(TRadioGroup)·································································123 6.1.9 简单组件编程示例 ··························································································124 6.2 文本编辑组件··············································································································126 6.2.1 单行编辑框组件(TEdit)··············································································127 6.2.2 多行编辑框组件(TMemo)··········································································129 6.2.3 RTF 编辑组件(TRichEdit)··········································································130 6.2.4 格式输入组件(TMaskEdit)·········································································131 6.2.5 文本编辑组件编程示例···················································································133 6.3 分组组件 ·····················································································································139 6.3.1 Tab 组件(TTabControl)···············································································139 6.3.2 多页组件(TPageControl) ············································································141 6.3.3 Tab 表组件(TTabSheet) ··············································································143 6.3.4 分组组件编程示例 ··························································································145 6.4 图形显示组件··············································································································149 6.4.1 图像组件(TImage)······················································································149 6.4.2 位图组件(TBitMap)····················································································150 6.4.3 图形显示组件编程示例···················································································152 6.5 对话框组件 ·················································································································153 6.5.1 打开对话框组件(TOpenDialog)·································································153 6.5.2 另存为对话框组件(TSaveDialog)······························································156 6.5.3 打开图像对话框组件(TOpenPictureDialog) ··············································156 6.5.4 图像另存为对话框(TSavePictureDialog)···················································157 6.5.5 字体对话框(TFontDialog)··········································································157 6.5.6 颜色对话框(TColorDialog) ········································································158 6.5.7 打印对话框(TPrintDialog)··········································································159 6.5.8 打印设置对话框(TPrinterSetupDialog)······················································160 6.5.9 查找对话框(TFindDialog)··········································································160 6.5.10 替换对话框(TReplaceDialog)···································································161 6.5.11 对话框组件编程示例·····················································································162 第 7 章 高级 VCL 组件············································································································167 7.1 窗体组件 ·····················································································································167 7.1.1 表头组件(THeaderControl)·········································································167 7.1.2 状态栏组件(TStatusBar)·············································································169 7.1.3 工具栏组件(TToolBar)···············································································171 7.1.4 酷栏组件(TCoolBar)···················································································174 7.1.5 窗体组件编程实例 ··························································································175 7.2 菜单组件 ·····················································································································178 7.2.1 主菜单组件(TMainMenu)···········································································178 目录 ·5· 7.2.2 弹出菜单组件(TPopMenu)·········································································180 7.2.3 菜单组件编程示例 ··························································································182 7.3 表格组件 ·····················································································································186 7.3.1 自绘栅格组件(TDrawGrid)········································································186 7.3.2 字符串栅格组件(TStringGrid) ···································································189 7.3.3 表格显示组件编程示例···················································································189 7.4 列表组件 ·····················································································································193 7.4.1 列表框组件(TListBox) ···············································································193 7.4.2 动作列表组件(TActionList)········································································196 7.4.3 图像列表组件(TImageList)········································································198 7.4.4 树型视图组件(TTreeView)·········································································203 7.4.5 列表视图组件(TListView)··········································································207 7.4.6 列表组件编程示例 ··························································································212 7.5 打印相关 ·····················································································································215 7.5.1 Quick Report 打印组件····················································································215 7.5.2 Rave Report 打印组件 ·····················································································217 第 8 章 窗体编程······················································································································218 8.1 窗体的分类 ·················································································································218 8.1.1 SDI 窗体 ··········································································································218 8.1.2 MDI 窗体·········································································································219 8.1.3 MPI 窗体··········································································································222 8.2 窗体的基本属性、方法和事件 ··················································································222 8.2.1 窗体的基本属性 ······························································································223 8.2.2 窗体的基本方法 ······························································································226 8.2.3 窗体的基本事件 ······························································································227 8.3 模式窗体与非模式窗体······························································································230 8.3.1 模式窗体··········································································································230 8.3.2 非模式窗体······································································································231 8.4 窗体示例 ·····················································································································231 第 9 章 事件处理······················································································································234 9.1 事件的定义及作用······································································································234 9.2 常用事件 ·····················································································································234 9.2.1 键盘事件··········································································································234 9.2.2 鼠标事件··········································································································235 9.3 拖曳事件 ·····················································································································235 9.4 事件编程示例··············································································································237 9.4.1 检测是否按下 Shift、Alt 或 Ctrl 键································································237 9.4.2 模拟按下键盘上的某个键···············································································238 9.4.3 限制鼠标移动的范围 ······················································································247 9.4.4 自定义鼠标······································································································248 Delphi 7 程序设计与开发技术大全 ·6· 9.4.5 设置光标闪烁的速度 ······················································································249 9.4.6 不同程序间的拖曳操作···················································································251 第 10 章 文件和路径处理········································································································253 10.1 文件管理常用函数和过程 ························································································253 10.1.1 文件操作常用函数和过程·············································································253 10.1.2 目录操作函数和过程 ····················································································256 10.1.3 驱动器操作常用函数 ····················································································259 10.2 各种文件类型的输入输出 ························································································259 10.2.1 文本文件········································································································260 10.2.2 类型文件········································································································261 10.2.3 无类型文件····································································································263 10.3 映像内存的操作········································································································264 10.3.1 映像内存函数································································································265 10.3.2 内存映像的步骤 ····························································································266 10.3.3 内存映像示例································································································267 10.4 目录和驱动器············································································································272 10.4.1 获取 System 目录···························································································272 10.4.2 获取 Windows 目录 ·······················································································273 10.4.3 获取当前目录································································································273 10.4.4 获取可用驱动器信息 ····················································································274 第 11 章 GDI 和图像编程········································································································276 11.1 Delphi 的绘图类········································································································276 11.1.1 画布类(TCanvas) ······················································································276 11.1.2 画笔类(TPen)····························································································282 11.1.3 画刷类(TBrush) ························································································285 11.1.4 颜色类(TColor)·························································································286 11.2 画图程序····················································································································287 11.2.1 界面设计········································································································287 11.2.2 代码设计········································································································290 11.2.3 菜单设计········································································································294 11.3 坐标系统和映射模式································································································297 11.3.1 设备坐标系····································································································298 11.3.2 逻辑坐标系····································································································298 11.3.3 屏幕坐标系····································································································298 11.3.4 窗体坐标系····································································································298 11.3.5 坐标映射········································································································299 11.3.6 设置映射模式 ································································································300 11.3.7 设置窗口范围 ································································································300 11.3.8 映射模式示例 ································································································301 11.4 图像格式处理············································································································303 目录 ·7· 11.5 GDI 字体 ···················································································································305 11.5.1 Win32 字体类型·····························································································305 11.5.2 基本字体元素 ································································································305 11.5.3 GDI 字体分类································································································306 11.5.4 显示不同字体 ································································································307 11.5.5 实际创建一种字体 ························································································307 第 12 章 多媒体技术················································································································310 12.1 多媒体技术概述········································································································310 12.1.1 MPC 标准·······································································································310 12.1.2 多媒体技术应用领域 ····················································································310 12.1.3 开发多媒体应用程序的工具········································································· 311 12.2 特殊显示效果············································································································312 12.2.1 基本原理········································································································313 12.2.2 使用 CopyRect 实现特效···············································································313 12.2.3 使用 BitBlt 实现特效·····················································································314 12.3 动画···························································································································319 12.3.1 文字动画········································································································319 12.3.2 图像动画········································································································320 12.4 音频与视频················································································································322 12.4.1 WAV 与 MIDI 文件简介················································································322 12.4.2 AVI 文件格式·································································································324 12.4.3 TMediaPlayer 组件的使用·············································································325 12.5 MessageBeep( )函数··································································································328 12.6 PlaySound( )函数·······································································································329 12.7 mciSendString( )函数·································································································330 第 13 章 消息处理技术············································································································333 13.1 Windows 消息 ···········································································································333 13.1.1 了解消息········································································································333 13.1.2 消息结构········································································································333 13.1.3 消息类型········································································································334 13.1.4 消息处理········································································································335 13.1.5 应用程序的消息循环 ····················································································338 13.2 Delphi 消息处理机制································································································339 13.2.1 消息处理函数································································································339 13.2.2 应用程序消息································································································340 13.3 发送消息 ···················································································································341 13.3.1 Perform()函数 ································································································341 13.3.2 SendMessage( )和 PostMessage( )函数··························································341 13.4 消息和事件················································································································341 13.4.1 消息和事件的工作原理·················································································341 Delphi 7 程序设计与开发技术大全 ·8· 13.4.2 消息与事件的对应关系·················································································343 13.4.3 使用 Windows 消息处理 Delphi 没有的事件 ···············································343 13.5 消息处理编程示例····································································································346 第 14 章 多线程编程················································································································348 14.1 线程的基础知识········································································································348 14.1.1 进程与线程关系 ····························································································348 14.1.2 多线程应用条件 ····························································································349 14.2 VCL 线程对象···········································································································351 14.2.1 TThread 类 ·····································································································351 14.2.2 线程函数········································································································354 14.2.3 线程的挂起与继续 ························································································355 14.2.4 线程的终止与异常处理·················································································356 14.3 管理多线程················································································································357 14.3.1 线程同步技术································································································357 14.3.2 线程优先级····································································································358 14.4 多线程示例················································································································365 第 15 章 动态链接库和组件包 ································································································374 15.1 动态链接库概述········································································································374 15.1.1 动态链接库的概念 ························································································374 15.1.2 Windows 系统的动态链接库·········································································374 15.1.3 动态链接与静态链接 ····················································································375 15.1.4 DLL 和系统变量 ···························································································376 15.1.5 DLL 的入口点函数························································································376 15.1.6 DLL 和内存管理 ···························································································377 15.1.7 DLL 中的数据 ·······························································································377 15.1.8 DLL 中的异常和运行时错误········································································377 15.2 创建和调用 DLL·······································································································378 15.2.1 创建 DLL 的基本步骤···················································································378 15.2.2 调用 DLL ·······································································································381 15.3 在 DLL 中封装窗体··································································································384 15.4 使用 DLL 共享数据··································································································386 15.4.1 内存映射文件的概念 ····················································································386 15.4.2 与内存映射文件相关的函数·········································································387 15.4.3 使用内存映射文件在 DLL 中共享数据························································389 15.5 钩子函数 ···················································································································392 15.5.1 钩子链············································································································392 15.5.2 钩子函数········································································································392 15.5.3 钩子类型········································································································392 15.5.4 与使用钩子相关的函数·················································································394 15.5.5 使用钩子函数监测所有鼠标动作的实例 ·····················································395 目录 ·9· 15.6 包和 DLL···················································································································398 15.6.1 为什么使用包································································································399 15.6.2 与包有关的文件类型 ····················································································399 15.6.3 运行时包········································································································399 15.6.4 设计时包········································································································401 15.6.5 创建和编辑包································································································403 15.6.6 配置包············································································································407 15.6.7 包集合文件····································································································408 15.6.8 使用包和 DLL ·······························································································409 第 16 章 开发新的 VCL 组件 ·································································································· 411 16.1 开发组件简介············································································································ 411 16.1.1 什么是组件···································································································· 411 16.1.2 为什么使用组件 ···························································································· 411 16.1.3 Delphi 的组件库基础·····················································································412 16.1.4 组件和类········································································································417 16.1.5 开发组件的要求 ····························································································417 16.1.6 如何选择新组件的基类·················································································419 16.1.7 开发新组件的基本步骤·················································································420 16.1.8 测试未安装的组件 ························································································423 16.1.9 测试已安装的组件 ························································································424 16.2 组件开发过程中的面向对象编程·············································································424 16.2.1 定义新类········································································································424 16.2.2 祖先、后代及类层次 ····················································································425 16.2.3 访问控制········································································································425 16.2.4 分派方式········································································································426 16.2.5 抽象类成员····································································································427 16.2.6 类和指针········································································································428 16.3 创建属性 ···················································································································428 16.3.1 属性的类型····································································································428 16.3.2 发布继承的属性 ····························································································428 16.3.3 定义属性········································································································428 16.3.4 存储和装载属性 ····························································································432 16.4 创建事件 ···················································································································434 16.4.1 事件定义········································································································434 16.4.2 怎样实现标准事件 ························································································436 16.4.3 定义新事件····································································································437 16.5 创建方法 ···················································································································439 16.5.1 避免互相依赖································································································439 16.5.2 命名方法的惯例 ····························································································439 16.5.3 保护方法········································································································440 Delphi 7 程序设计与开发技术大全 ·10· 16.5.4 使方法变为虚方法 ························································································440 16.5.5 声明方法········································································································440 16.6 在组件中使用图形····································································································440 16.6.1 VCL 的图形接口 ···························································································441 16.6.2 使用 Canvas···································································································441 16.6.3 使用图形工作································································································441 16.6.4 脱屏位图(Off-Screen Bitmap)···································································443 16.6.5 对变化作出反应 ····························································································443 16.7 处理消息和系统通知································································································444 16.7.1 理解消息处理系统 ························································································444 16.7.2 改变消息处理方法 ························································································445 16.7.3 创建新的消息处理方法·················································································446 16.8 使组件在设计阶段可用····························································································448 16.8.1 注册组件········································································································448 16.8.2 安装组件到组件面板 ····················································································450 16.8.3 使组件的资源文件可用·················································································452 16.8.4 为组件设置位图 ····························································································453 16.8.5 为组件提供帮助 ····························································································454 16.8.6 增加属性编辑器 ····························································································454 16.8.7 加入组件编辑器 ····························································································457 16.9 修改现存的组件:制作非自动换行的 Memo 组件·················································460 16.9.1 创建并注册组件 ····························································································460 16.9.2 修改组件类····································································································461 16.10 开发图形组件:制作 Shape 图形组件···································································462 16.10.1 创建和注册组件 ··························································································462 16.10.2 发布继承的属性 ··························································································462 16.10.3 增加图形能力 ······························································································463 16.11 开发窗口控件:制作 Calendar 组件 ······································································468 16.11.1 创建并注册组件 ··························································································468 16.11.2 发布继承属性 ······························································································469 16.11.3 改变初始值 ··································································································470 16.11.4 重定义单元格大小·······················································································470 16.11.5 填充单元格 ··································································································471 16.11.6 跟踪日期······································································································472 16.11.7 导航月和年 ··································································································476 16.11.8 导航日期······································································································476 16.12 开发数据感知控件:制作数据感知的 Calender 组件···········································478 16.12.1 制作一个数据浏览控件···············································································478 16.12.2 制作一个数据编辑控件···············································································482 16.13 开发非可视组件:制作 Dialog 组件······································································486 目录 ·11· 16.13.1 定义组件接口 ······························································································486 16.13.2 创建和注册组件 ··························································································487 16.13.3 创建组件接口 ······························································································487 16.13.4 测试对话框组件 ··························································································488 第 17 章 Delphi 两层数据库开发 ····························································································489 17.1 数据库基础知识········································································································489 17.1.1 数据库的出现和发展 ····················································································489 17.1.2 数据库的组成································································································491 17.1.3 数据库系统模型 ····························································································492 17.1.4 数据库的常用概念 ························································································494 17.1.5 目前流行的数据库介绍·················································································495 17.1.6 数据库开发的一般方法·················································································498 17.2 Delphi 的数据库体系结构 ························································································500 17.2.1 Delphi 数据库访问原理·················································································500 17.2.2 Delphi 与其他数据库开发工具的比较 ·························································502 17.2.3 Delphi 的数据库开发优势·············································································503 17.3 Delphi 支持的数据引擎 ····························································································503 17.3.1 BDE 数据库引擎 ···························································································504 17.3.2 ADO 数据库引擎···························································································504 17.3.3 dbExpress 数据库引擎···················································································505 17.3.4 Interbase 数据库引擎·····················································································506 17.4 数据访问组件············································································································506 17.4.1 数据库组件····································································································507 17.4.2 数据库连接组件 ····························································································512 17.4.3 数据集组件····································································································513 17.4.4 数据源组件····································································································535 17.5 数据感知组件············································································································537 17.5.1 单行字符字段编辑框组件(TDBText) ······················································538 17.5.2 单行字段编辑框组件(TDBEdit) ······························································542 17.5.3 多行字段编辑框组件(TDBMemo)···························································545 17.5.4 图像字段组件(TDBImage)·······································································550 17.5.5 字段列表框组件(TDBListBox) ································································551 17.5.6 字段下拉列表框组件(TDBComboBox)···················································554 17.5.7 参照字段列表框组件(TDBLookupListBox) ············································555 17.5.8 参照字段下拉列表框组件(TDBLookupComboBox)·······························557 17.5.9 记录导航组件(TDBNavigator)·································································559 17.5.10 表格组件(TDBGrid) ···············································································563 17.6 Delphi 的其他支持····································································································569 17.6.1 DataPump ·······································································································569 17.6.2 DataDesktop ···································································································572 Delphi 7 程序设计与开发技术大全 ·12· 17.6.3 BDE 配置工具·······························································································581 17.6.4 SQL Explorer 实用工具·················································································582 17.7 如何连接数据库········································································································584 17.7.1 BDE 方式连接 Access···················································································584 17.7.2 ODBC 方式连接 Access················································································584 17.7.3 ADO 方式连接 Access···················································································588 17.7.4 连接文本文件································································································590 17.8 一些常用工具和数据字典的用法·············································································591 17.8.1 SQL 监视器 ···································································································591 17.8.2 数据字典········································································································591 第 18 章 客户/服务器编程·······································································································593 18.1 从桌面数据库到客户/服务器结构 ···········································································593 18.1.1 为什么要采用客户/服务器结构····································································593 18.1.2 客户/服务器体系结构 ···················································································594 18.2 服务器端的设计开发································································································596 18.2.1 数据库对象····································································································596 18.2.2 定义数据库表································································································596 18.2.3 使用域············································································································598 18.2.4 定义视图、存储过程和触发器·····································································598 18.2.5 业务规则········································································································603 18.2.6 数据库对象的访问权限·················································································604 18.3 客户端使用 SQL 服务器···························································································605 18.3.1 连接 SQL 服务器···························································································605 18.3.2 获得 SQL 数据库信息···················································································608 18.3.3 查询数据库····································································································608 18.3.4 数据库更新····································································································613 18.3.5 执行存储过程································································································614 第 19 章 多层数据库应用程序的开发·····················································································619 19.1 多层体系结构和技术概述 ························································································619 19.1.1 多层体系结构概述 ························································································619 19.1.2 多层体系结构的优点 ····················································································620 19.1.3 多层体系结构技术概述·················································································622 19.2 客户端程序开发········································································································628 19.2.1 客户端应用程序的结构·················································································628 19.2.2 创建客户端应用程序的步骤·········································································628 19.2.3 连接应用服务器 ····························································································629 19.2.4 管理应用服务器连接 ····················································································631 19.2.5 处理约束和客户端的差错控制·····································································632 19.2.6 数据更新········································································································632 19.3 服务器程序开发········································································································634 目录 ·13· 19.3.1 创建应用服务器的步骤·················································································634 19.3.2 创建及配置远程数据模块·············································································636 19.3.3 建立 IProvider 接口 ·······················································································638 19.4 InternetExpress 扩展··································································································640 19.4.1 XML Broker 组件 ··························································································640 19.4.2 TinetXPageProducer 组件 ··············································································644 19.5 支持 CORBA 和 MTS·······························································································645 19.5.1 CORBA··········································································································645 19.5.2 MTS ···············································································································646 19.6 Briefcase(公文包)程序·························································································648 第 20 章 报表、图表和决策的支持 ························································································651 20.1 使用 QuickReport 组件创建报表··············································································651 20.1.1 安装 QReport 组件面板·················································································651 20.1.2 QuickReport 组件介绍···················································································652 20.1.3 报表向导········································································································660 20.2 使用 Rave 组件创建报表··························································································662 20.2.1 开发环境介绍································································································663 20.2.2 Rave 组件介绍·······························································································664 20.2.3 创建视图········································································································666 20.2.4 创建报表········································································································669 20.2.5 应用实例········································································································672 20.3 TeeChart 图表组件 ····································································································676 20.3.1 TeeChart 组件介绍·························································································676 20.3.2 TeeChart 组件常用属性和方法 ·····································································676 20.3.3 TeeChart 组件的使用·····················································································677 20.3.4 Series 对象介绍 ·····························································································679 20.3.5 创建数据库图表 ····························································································680 20.3.6 创建 QuickReport 图表··················································································682 20.3.7 使用 TeeChart 向导创建图表 ········································································682 20.3.8 图表的预览,打印和导出·············································································684 20.4 Decision Cube 决策组件 ···························································································685 20.4.1 Decision Cube 组件························································································685 20.4.2 Decision Query 组件 ······················································································688 20.4.3 Decision Grid 组件·························································································689 20.4.4 Decision Graph 组件 ······················································································692 20.4.5 Decision Pivot 组件························································································694 20.4.6 DecisionSource 组件······················································································697 第 21 章 从数据建模到系统开发 ····························································································698 21.1 软件工程介绍············································································································698 21.1.1 生命周期法····································································································698 Delphi 7 程序设计与开发技术大全 ·14· 21.1.2 快速原型法····································································································700 21.2 数据库的建立············································································································702 21.2.1 需求分析········································································································702 21.2.2 数据建模········································································································703 21.2.3 设计规范化····································································································704 21.2.4 自动化设计工具 ····························································································704 21.3 设计用户端界面········································································································705 21.3.1 用户界面设计的基本原则·············································································705 21.3.2 Delphi 中用户界面设计·················································································706 21.4 基于 ADO 两层结构的实现······················································································707 21.5 使用多层结构的实现································································································708 21.5.1 基于 DataSnap 技术的多层数据库应用程序················································708 21.5.2 使用 Bussiness Broker Server 的多层数据库应用程序·································709 21.5.3 逻辑三层结构的数据库应用程序·································································709 21.6 发布到 Web ···············································································································710 21.7 “图书管理系统”示例···························································································· 711 21.7.1 程序功能及总体结构设计············································································· 711 21.7.2 数据库设计····································································································713 21.7.3 数据模块设计································································································713 21.7.4 用户登录模块的实现 ····················································································714 21.7.5 图书馆管理系统功能的实现·········································································717 21.7.6 修改图书记录模块的实现·············································································718 21.7.7 修改学生记录模块的实现·············································································721 21.7.8 修改密码设置模块的实现·············································································724 21.7.9 生成预约图书的报表 ····················································································726 21.7.10 生成催还图书的报表···················································································728 21.7.11 图书馆服务系统功能的实现·······································································731 21.7.12 查询、借阅及预约图书···············································································733 21.7.13 查询个人借阅情况及归还图书···································································741 21.7.14 小结··············································································································746 第 22 章 Internet 编程和 Indy 组件··························································································747 22.1 WinSock 基础············································································································747 22.1.1 TCP、UDP 和 IP ···························································································747 22.1.2 套接字(Socket) ·························································································748 22.1.3 客户/服务器模式···························································································749 22.1.4 面向连接的协议套接字的调用·····································································750 22.1.5 面向无连接协议的套接字的调用·································································750 22.2 利用 Winsock API 实现 Socket 编程 ········································································751 22.2.1 常用 WinSockAPI 函数 ·················································································751 22.2.2 利用 WinSockAPI 实现 Socket 编程·····························································754 目录 ·15· 22.3 利用组件实现 Socket 编程 ·······················································································762 22.3.1 TClientSocket 组件 ························································································762 22.3.2 TServerSocket 组件························································································763 22.3.3 Indy 组件介绍································································································764 22.4 编程示例 ···················································································································772 22.4.1 远程抓屏示例································································································772 22.4.2 局域网聊天程序 ····························································································780
评论